|
Eine der ersten und wichtigsten Schritte bei der Softwareentwicklung
ist die Identifikation der Anforderungen. Die funktionalen
Anforderungen, Core Concerns, beschreiben den logischen Kern einer
Anwendung, während nicht-funktionale Anforderungen technische
Randbedingungen beinhalten. Core Concerns lassen sich mit
konventionellen Entwurfsmethoden als Module bzw. Klassen
modellieren. Allerdings ist es häufig nicht möglich Concerns
einzelnen Modulen zuordnen, sondern sie umfassen mehrere Module bzw.
das gesamte System. Diese Querschnittsfunktionen, Crosscutting
Concerns, erschweren in klassischen Systemen die Wartbarkeit,
Modularisierung und Wiederverwendbarkeit.
Moderne Konzepte erlauben es Crosscutting Concerns zu modularisieren
und in Form von Seiteneffekten zur bestehenden
Anwendungsfunktionalität hinzuzufügen. Das Prinzip der Trennung
dieser Anforderungen wird als Separation-of-Concerns bezeichnet und
geht auf Edsger W. Dijkstra und David Parnas zurück. In dieser
Fachstudie wird untersucht, wie sich Crosscutting Concerns als
Seiteneffekte in Anwendungen einbringen lassen.
|